package es.app.acciones;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.web.context.ContextLoader;

import es.app.beans.Usuario;
import es.app.constantes.Constantes;
import es.app.forms.LoginForm;
import es.app.services.ServicioUsuariosImpl;
import es.app.services.interfaces.ServicioUsuarios;
import es.app.util.Lista;

public class LoginAction extends AppSHSAction {
	
	private static final Logger log = Logger.getLogger(LoginAction.class);

	public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		System.out.println("PASA!!");
		return mapping.findForward("holamundo");
	}
	public ActionForward login1(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
		
		LoginForm formulario = (LoginForm)form;
		
//		DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
//		Date date = new Date();
//		String idSession = dateFormat.format(date);
		
		log.debug("Intento de login. Usuario: "+formulario.getUsuario());
		
		ServicioUsuarios servicioUsuarios= (ServicioUsuarios)ContextLoader.getCurrentWebApplicationContext().getBean(Constantes.SERVICIO_USUARIOS);
		//ServicioUsuariosImpl servicioUsuarios = (ServicioUsuariosImpl)ContextLoader.getCurrentWebApplicationContext().getBean(Constantes.SERVICIO_USUARIOS);
		boolean hayErroresEnFormulario = hayErroresEnFormulario(request);
		
		if(!hayErroresEnFormulario){
			log.debug("No hay errores en el formulario. Se procede a buscar el usuario en la BBDD");
			Lista<Usuario> usuario = servicioUsuarios.getUsuario(formulario.getUsuario());
			log.debug("Se han encontrado: "+ usuario.size());
			
					
			if(usuario!=null && usuario.size()>0){
				log.debug("Los usuarios encontrados son: "+ usuario.toXML());
				HttpSession session = request.getSession(false);
				request.getSession().setAttribute(Constantes.OPCION_MENU, Constantes.MENU_NO_OPCION);
				request.getSession().setAttribute("constantes", Constantes.constantes);
				session.setAttribute("usuario",usuario.get(0));
				return mapping.findForward("noOpcionSel");
			}
			else{
				log.debug("El usuario: "+formulario.getUsuario()+" no existe");
				anadirError(request, "usuario", "error.usuario.noExiste", new String[]{formulario.getUsuario()});
			}		
		}
		return mapping.getInputForward();
		
	}
}
